package cn.tedu.egmvc4.controller;

import cn.tedu.egmvc4.mapper.CustomersMapper;
import cn.tedu.egmvc4.pojo.entity.Customers;
import cn.tedu.egmvc4.pojo.vo.CustomersVO;
import cn.tedu.egmvc4.pojo.vo.UserOrdersVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/customers")
public class CustomersController {
    @Autowired
    private CustomersMapper customersMapper;

    /**
     * 1.在客户信息表中插入一条数据：'0008', '13811112222', 'Tony', '成都'
     * 请求地址：/customers/insert
     * 请求方法：POST
     * 请求体数据：custTel,custName,address
     * 返回响应：String "添加客户成功"
     */
    @RequestMapping("/insert")
    public String inertCus(Customers customer){
        customersMapper.insertCus(customer);
        return "添加用户成功";
    }

    /**
     * 2.根据顾客的id查询该顾客成交的订单信息,
     * 显示: 顾客id, 姓名, 所有订单的信息 List<UserOrders>
     * 请求地址：/customers/selectOrders
     * 请求方法：GET
     * 请求体数据：custId,custName,List<userOrders>
     * 返回响应：UserOrdersVO
     */
    @RequestMapping("/selectOrders")
    public UserOrdersVO selectOrdersByCid(String custId){
        return customersMapper.selectOrdersByCid(custId);
    }

    /**
     * 3.查询指定城市的客户的 姓名和地址，结果集放到 List集合 中，
     * 比如查询北京的客户信息：CustomersVO2
     * 请求地址：/customers/selectCusInfos
     * 请求方法：POST
     * 请求体数据：custName,address
     * 返回响应：CustomersVO
     */
    @RequestMapping("/selectCusInfos")
    public List<CustomersVO> selectCusByAddress(String address){
        return customersMapper.selectCusByAddress(address);
    }

    /**
     * 4.根据客户编号动态修改顾客的信息
     * 请求地址：/customers/update
     * 请求方法：POST
     * 请求体数据：custId,custTel,custName,address
     * 返回响应：String "修改客户信息成功"
     */
    @RequestMapping("/update")
    public String updateCusInfo(Customers customers){
        customersMapper.updateCusInfo(customers);
        return "修改客户信息成功";
    }

    /**
     * 5.根据客户编号动态删除顾客的信息，使用 List 集合方式
     * 请求地址：/customers/delete
     * 请求方法：GET
     * 请求体数据：custId
     * 返回响应：String "删除客户信息成功"
     */
    @RequestMapping("/delete")
    public String deleteCus(){
        ArrayList<String> cids = new ArrayList<>();
        cids.add("0008");
        cids.add("0009");
        customersMapper.deleteCus(cids);
        return "删除客户信息成功";
    }
}
